// 定义一个函数,来对数据进行处理,格式化数据

function formatNumber(num: any) {
    // 转成 Number 类型

    // console.log(num);

    // 判断是否是一个合法数
    // if (isNaN(num)) {
    //     return '请传入一个合法数'
    // }
    num = '' + num
    let [intNum, floatNum] = num.split('.')
    // 整数部分前后反转
    intNum = intNum.split('').reverse().join('')
    // 现在就是从前往后替换千分位的‘,’了
    intNum = intNum.replace(/\d{3}/g, '$&,')
    // 最后再反转回去
    intNum = intNum.split('').reverse().join('')

    // 上面三个部分当然可以简写成下面的一行，前提是： 如果你不怕你的同事打你的话 哈哈哈...
    // intNum = intNum.split('').reverse().join('').replace(/\d{3}/g, '$&,').split('').reverse().join('')

    // 整数长度为是三的倍数情况 去除第一个‘,’
    if (intNum[0] === ',' || intNum[1] === ',') {
        intNum = intNum.replace(',', '')
    }

    // 最后 整数 + 小数 返回 搞定！
    return intNum + (floatNum ? '.' + floatNum : '')

    // return `${num}`.replace(/(\d{3})(?=\d)/g, '$1,')
}

// 导出具有格式化功能的函数
export default function useFormat() {
    // 格式化人数
    const numberFormat = (value: any) => {
        return formatNumber(value)
    }
    // 格式化金额
    const moneyFormat = (value: any) => {
        return formatNumber(value)
    }
    return {
        numberFormat, moneyFormat
    }
}